home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / bbs / WWBBSDoors.lha / WWBBS / rexxDoors / StoryBoard.rexx < prev    next >
OS/2 REXX Batch file  |  1995-04-27  |  5KB  |  233 lines

  1. /* Story Writer 1.0 by Nathan Beaty - updated for BBBBS  7 Aug 93 */
  2.  
  3. options results
  4.  
  5. signal on syntax
  6. signal on BREAK_C
  7.  
  8. /* Open the support library if it is not already open. */
  9. if ~show('L',"rexxsupport.library") then do
  10.    if ~addlib('rexxsupport.library',0,-30,0) then do
  11.       CALL TRANSMIT 'Support library not available.  Aborting...'
  12.       call CloseShop
  13.       exit 10
  14.       end
  15.    end
  16.  
  17. BBSIDENTIFY SYSOP
  18. sysop=result
  19. bbsname='WWBBS'
  20.  
  21. bbspath=GETCLIP('BBS_path')
  22.  
  23. PARSE ARG name . . gfx secs .
  24.  
  25. BBSIDENTIFY EMULATION
  26. PARSE VAR RESULT type .
  27. if type = "ANSI" then
  28.   gfx=1
  29. else
  30.   gfx=0
  31.  
  32. BBSIDENTIFY USER
  33. PARSE VAR RESULT Username From Acces .
  34. name = substr(Username,2,length(Username)-2)
  35.  
  36. IF secs='' THEN secs=3600
  37. CALL MAKEDIR(bbspath'rexxDoors/Data/StoryBoard')
  38. DATFILE1 = bbspath'rexxDoors/Data/StoryBoard/story1'
  39. DATFILE2 = bbspath'rexxDoors/Data/StoryBoard/story2'
  40. DATFILE3 = bbspath'rexxDoors/Data/StoryBoard/story3'
  41. MFILE1 = 'Story 1 - unnamed'
  42. MFILE2 = 'Story 2 - unnamed'
  43. MFILE3 = 'Story 3 - unnamed'
  44. DATFILE = DATFILE1
  45. MFILE = MFILE1
  46.  
  47. CLS = ''
  48. if (gfx) then do
  49.  OFF = ''
  50.  RED = ''
  51.  YEL = ''
  52.  BLU = ''
  53.  REDWHT = ''
  54.  WHTBLU = ''
  55.  end
  56. else do
  57.  OFF = ''
  58.  RED = ''
  59.  YEL = ''
  60.  BLU = ''
  61.  REDWHT = ''
  62.  WHTBLU = ''
  63.  end
  64.  
  65. BEGIN:
  66. CALL TRANSMIT CLS
  67. CALL TRANSMIT REDWHT'Story Board!   By Nathan Beaty'
  68. CALL TRANSMIT OFF '------------------------------'
  69. CALL TRANSMIT BLU'You are currently in 'RED MFILE
  70. CALL TRANSMIT ' '
  71. CALL TRANSMIT WHTBLU'[1]'OFF BLU'      - change to' MFILE1
  72. CALL TRANSMIT WHTBLU'[2]'OFF BLU'      - change to' MFILE2
  73. CALL TRANSMIT WHTBLU'[3]'OFF BLU'      - change to' MFILE3
  74. CALL TRANSMIT ' '
  75. CALL TRANSMIT WHTBLU'[A]'OFF BLU'      - Add to' RED MFILE
  76. CALL TRANSMIT WHTBLU'[V]'OFF BLU'      - View  ' RED MFILE
  77. CALL TRANSMIT WHTBLU'[Q]uit'OFF BLU'   - return to 'YEL||BBSNAME||OFF
  78. CALL TRANSMIT ' '
  79. prompt( YEL 'Option: ')
  80. opt=readstr()
  81. CALL TRANSMIT opt
  82. CALL checkBBS()
  83. select
  84.   when opt='1' then do
  85.      DATFILE = DATFILE1
  86.      MFILE = MFILE1
  87.   signal BEGIN
  88.   end
  89.   when opt='2' then do
  90.      DATFILE = DATFILE2
  91.      MFILE = MFILE2
  92.   signal BEGIN
  93.   end
  94.   when opt='3' then do
  95.      DATFILE = DATFILE3
  96.      MFILE = MFILE3
  97.   signal BEGIN
  98.   end
  99.   when opt='A' then do
  100.     call GETLINE
  101.   end
  102.   when opt='V' then do
  103.     CALL TRANSMIT cls
  104.     CALL TRANSMIT MFILE
  105.     CALL TRANSMIT '-----------------------------------------------------------'OFF
  106.     x=OPEN(f,DATFILE,'R')
  107.     IF x~=0 THEN
  108.       DO i=1
  109.         line=READLN(f)
  110.         IF EOF(f) THEN LEAVE i
  111.         CALL TRANSMIT line
  112.       END
  113.     CALL CLOSE(f)
  114.     prompt( YEL'Press Return 'OFF)
  115.     junk=readstr()
  116.     CALL TRANSMIT ''
  117.     signal BEGIN
  118.   end
  119.   when opt='Q' then do
  120.     CALL TRANSMIT ' '
  121.     CALL TRANSMIT 'Returning to 'BBSNAME
  122.     exit
  123.     end
  124.   otherwise signal BEGIN
  125.   end
  126. signal BEGIN
  127.  
  128. GETLINE:
  129.  CALL TRANSMIT CLS
  130.  prompt( 'Add how many lines?  (1-5) >')
  131.  LINEN=readstr()
  132.  if LINEN < 1 or LINEN > 5 then call getline
  133.  
  134.  CALL TRANSMIT '>-Enter 'LINEN' Lines - Return to Quit - .......................................|'
  135.  ADD  = ''
  136.  line = ' '
  137.  do for LINEN until line=''
  138.    CALL checkBBS()
  139.    prompt( '>')
  140.    line=readstr()
  141.    ADD = STRIP(ADD line)
  142.  end
  143.  
  144. if ADD=='' then do
  145.    call BEGIN
  146.    end
  147.  
  148. lines = 0
  149. do while length(ADD) > 79
  150.    pointer = 79
  151.    do for 79 while substr(ADD,pointer,1)~=' '
  152.       pointer = pointer - 1
  153.       end
  154.    lines = lines + 1
  155.    ADD.lines = left(ADD,pointer)
  156.    ADD = substr(ADD,pointer+1)
  157.    end
  158. if length(ADD) > 0 then do
  159.    lines = lines + 1
  160.    ADD.lines = ADD
  161.    end
  162.  CALL TRANSMIT ' '
  163.  
  164. MAKESURE:
  165.  prompt( 'Add lines to the story? (Y/n) :')
  166.  choice=readstr()
  167.  if choice = 'N' then call BEGIN 
  168.  
  169. WRITELINE: 
  170. CALL TRANSMIT BLU" Yes!"OFF
  171. CALL TRANSMIT "Adding to"MFILE"...."
  172. IF EXISTS(DATFILE) THEN call open file, DATFILE,'A'
  173. ELSE call open file, DATFILE,'W'
  174.  do i = 1 to lines
  175.    call writeln file,ADD.i
  176.  end
  177. call close file
  178. call BEGIN
  179.  
  180. CloseShop:
  181. Die:
  182. exit
  183. return
  184.  
  185.  
  186. checkBBS:
  187. IF ADDRESS()~='BAUD' THEN RETURN 0
  188. IF TIME('E')>secs THEN EXIT
  189. dcd
  190. IF RC=0 THEN EXIT
  191. temp=secs-TIME('E')
  192. IF temp<120 THEN SAY '*** Only' temp 'seconds left! ***'CR
  193. RETURN 0
  194.  
  195. readstr: procedure
  196. str=''
  197. out=readch(STDIN)
  198.  call WRITECH(STDOUT,out)
  199.  do while out~=D2C(13)
  200.       if out=D2C(8) then do
  201.          str=SUBSTR(str,1,LENGTH(str)-1)
  202.          call WRITECH(STDOUT,' ')
  203.          call WRITECH(STDOUT,out)
  204.          end
  205.       else
  206.          str=INSERT(str,out)
  207.       out=readch(STDIN)
  208.       call WRITECH(STDOUT,out)
  209.     end
  210. say '0D'x
  211. return(UPPER(str))
  212.  
  213. prompt: procedure
  214. parse arg str
  215. writech(STDOUT,str)
  216. return 1
  217.  
  218. /*************************************************************************/
  219.  
  220. SYNTAX:
  221.    CALL TRANSMIT '*BOOM*  Syntax error in StoryBoard.  PLEASE notify the sysop.'
  222. BREAK_C:
  223.    CALL TRANSMIT 'Line:' SIGL '   Error Code:' RC
  224. call CloseShop
  225. exit
  226.  
  227. transmit:
  228. PARSE ARG string
  229. SAY string'0D'x
  230. RETURN
  231.  
  232. /*************************************************************************/
  233.